/******************************************************************************************
Copyright(C), 2019-2020, Linyar.
文件名：L_SVP_IVE_csc.h
作者：燕卫博	版本：V1.0	创建日期：2021.6.8
文件描述：
    头文件。
版本信息：
    9Hv2，个人。
历史修改记录：
1. 2021-6.8:V1.1 燕卫博
创建。

2. 2021-8-11:V1.0 燕卫博
从9Hv1拷贝，接续使用。
******************************************************************************************/

#ifndef __L_SVP_IVE_CSC__
#define __L_SVP_IVE_CSC__
//                                              ↓
//+------------------------------------------------------------------------------------------+
//|                                         头文件包含
//+------------------------------------------------------------------------------------------+
/*|*/  #include <stdio.h>
/*|*/  #include <string.h>
/*|*/  #include <fcntl.h>
/*|*/  #include <math.h>
//+------------------------------------------------------------------------------------------+
/*|*/  #include "hi_common.h"
/*|*/  #include "hi_comm_sys.h"
/*|*/  #include "hi_comm_ive.h"
/*|*/  #include "mpi_sys.h"
/*|*/  #include "mpi_ive.h"
//+------------------------------------------------------------------------------------------+
//|                                         程序宏定义
//+------------------------------------------------------------------------------------------+
//|    ------------------------------------------------------------
//|    一些工具宏
//|    ------------------------------------------------------------
/*|*/  #define SVP_IVE_ALIGN(u32Num, x) (((u32Num+x-1)/x)*x)
//+------------------------------------------------------------------------------------------+
//|                                     用于调试的宏定义
//+------------------------------------------------------------------------------------------+
//|    #define __L_SVP_IVE_DEBUG
/*|*/  #define __L_SVP_IVE_INFO
/*|*/  #define __L_SVP_IVE_ERROR
//+------------------------------------------------------------------------------------------+
/*|*/  #ifdef __L_SVP_IVE_DEBUG //Debug用于程序测试点输出，如关键值、分支位置和判断结果等
/*|*/  #define LOGD(format,...) printf(format,##__VA_ARGS__)
/*|*/  #else
/*|*/  #define LOGD(format,...)
/*|*/  #endif
/*|*/
/*|*/  #ifdef __L_SVP_IVE_INFO //Info用于指示程序执行进度，用于关键点输出
/*|*/  #define LOGI(format,...) printf(format,##__VA_ARGS__)
/*|*/  #else
/*|*/  #define LOGI(format,...)
/*|*/  #endif
/*|*/
/*|*/  #ifdef __L_SVP_IVE_ERROR //Error指示程序运行中遇到的意外的错误，如函数执行失败等
/*|*/  #define LOGE(format,...) printf(format,##__VA_ARGS__)
/*|*/  #else
/*|*/  #define LOGE(format,...)
/*|*/  #endif
//+------------------------------------------------------------------------------------------+
//|  信息输出格式规定如下：
//|     [SVP-NNIE-level]function:message(return value or something...)...
//|  其中，“level”表示消息等级，如DEBUG、INFO和ERROR；“function”表示信息相关函数名；
//|  “message”表示日志信息。
//+------------------------------------------------------------------------------------------+
//|                                       函数/变量声明
//+------------------------------------------------------------------------------------------+
/*|*/int L_SVP_IVE_CSC_Init(IVE_IMAGE_S *pstOutputRGB888Image);
/*|*/int L_SVP_IVE_CSC(VIDEO_FRAME_INFO_S *pstInputYUV420SPImage, IVE_IMAGE_S *pstOutputRGB888Image);
/*|*/void L_SVP_IVE_CSC_DeInit(IVE_IMAGE_S *pstOutputRGB888Image);
//+------------------------------------------------------------------------------------------+

#endif
